/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufrn.dimap.Visitors;

import br.ufrn.dimap.Grafo.Comentario;
import br.ufrn.dimap.Grafo.Postagem;
import br.ufrn.dimap.Grafo.Usuario;
import java.util.Iterator;

/**
 *
 * 
 */
public class PrinterVisitor extends Visitor{
   
    @Override
    public void visit(Usuario usuario) {
        StringBuilder sbUsuario = new StringBuilder();
        sbUsuario.append("---------------------------------");
        sbUsuario.append("\r\nNome: "+(usuario.getNome()));
        sbUsuario.append("\r\nDescricao: "+(usuario.getDescricao()));
        sbUsuario.append("\r\nData de Aniversario: "+(usuario.getAniversaio()));
        sbUsuario.append("\r\nE-mail: "+(usuario.getEmail()));
        sbUsuario.append("\r\nGênero: "+(usuario.getGenero()));
        sbUsuario.append("\r\nLocal: "+(usuario.getLocal()));
        sbUsuario.append("\r\nID: "+(usuario.getId()));
        if(usuario.getPosts() != null){
        Iterator<Postagem> posts = usuario.getPosts().iterator();
        while(posts.hasNext()){
            Postagem post = posts.next();
            sbUsuario.append("\r\n"+post.getAutor()+" - "+post.getMensagem());
            if(post.getComentarios() != null){
                Iterator<Comentario> comentarios = post.getComentarios().iterator();
                while(comentarios.hasNext()){
                    Comentario comentario = comentarios.next();
                    sbUsuario.append("\r\n     "+comentario.getAutor()+" - (Comentario)"+comentario.getMensagem());;
                }
            }
        }
        }
        sbUsuario.append("\r\n---------------------------------\r\n");
        usuario.setInfo(sbUsuario.toString());
        
    }
}
